#include <iostream>
#include <string>
#include <vector>
#include <algorithm> // 算法头文件
using namespace std;

// 声明数据对象
typedef struct Elenemt_data
{
    string name; // 姓名
    string sex;    // 性别
    int age;        // 年纪
    int id;         // 学号
    int sco;        // 成绩
}Elenemt_data;


Elenemt_data data[10] =
{
    {"张1" , "男" ,  18 , 1 , 59 },
    {"张2" , "男" ,  18 , 1 , 59 },
    {"张3" , "男" ,  18 , 1 , 59 },
    {"张4" , "男" ,  18 , 1 , 59 },
    {"张5" , "男" ,  18 , 1 , 59 },
    {"张6" , "男" ,  18 , 1 , 59 },
};

void print_Elenemt_data(Elenemt_data print_data)
{
    cout << "姓名:" << print_data.name << "   ";
    cout << "性别:" << print_data.sex << "   ";
    cout << "年纪:" << print_data.age << "   ";
    cout << "学号:" << print_data.id << "   ";
    cout << "成绩:" << print_data.sco << endl;
    return ;
}

Elenemt_data func(Elenemt_data data)
{
    if (data.sco > 50 &&  data.sco < 60 )
    {
        data.sco = 60;
    }

    return data;
    
}


int main(int argc, char const *argv[])
{
    vector<Elenemt_data> v;
    for (size_t i = 0; i < 6; i++)
    {
        v.push_back(data[i]);
    }
    
    for_each(v.begin() , v.end() , print_Elenemt_data);


    vector<Elenemt_data> V_2(v.size());

    transform(v.begin() , v.end() , V_2.begin() , func);

    for_each(V_2.begin() , V_2.end() , print_Elenemt_data);
    
    return 0;
}
